package br.com.quiz.domain;

import java.io.Serializable;

import javax.persistence.*;

import java.util.List;

/**
 * 
 * Classe que representa
 * 
 * 
 * @author Aline Davanse <alinedavanse@live.com>
 * @since 05/09/2014 22:09:36
 * @version 1.0
 */
@Entity
//@NamedQuery( name = "Disciplina.findAll", query = "SELECT d FROM Disciplina d" )
@NamedQueries( value = { @NamedQuery( name = "Disciplina.filtrarPorId", query = "Select disciplina From Disciplina disciplina where disciplina.disId = :disId" ), @NamedQuery( name = "Disciplina.listar", query = "SELECT d FROM Disciplina d" ) } )
public class Disciplina implements Serializable{
	private static final long serialVersionUID = 1L;

	@Id
	@Basic
	@GeneratedValue( strategy = GenerationType.IDENTITY )
	@Column( name = "DIS_ID" )
	private int disId;

	@Column( name = "DIS_DESCRICAO" )
	private String disDescricao;

	//	//bi-directional many-to-one association to DisciplinaProfessor
	//	@OneToMany( mappedBy = "disciplina" )
	//	private List< DisciplinaProfessor > disciplinaProfessors;
	//
	//	//bi-directional many-to-one association to DisciplinaQuestao
	//	@OneToMany( mappedBy = "disciplina" )
	//	private List< DisciplinaQuestao > disciplinaQuestaos;

	//bi-directional many-to-one association to UnidadeDeEnsinoDisciplina
	//	@OneToMany( mappedBy = "disciplina" )
	//	private List< UnidadeDeEnsinoDisciplina > unidadeDeEnsinoDisciplinas;

	public Disciplina(){}

	public int getDisId() {
		return this.disId;
	}

	public void setDisId( int disId ) {
		this.disId = disId;
	}

	public String getDisDescricao() {
		return this.disDescricao;
	}

	public void setDisDescricao( String disDescricao ) {
		this.disDescricao = disDescricao;
	}

	@Override
	public String toString() {
		return getDisDescricao();
	}

	@Override
    public int hashCode() {
	    final int prime = 31;
	    int result = 1;
	    result = prime * result + disId;
	    return result;
    }

	@Override
    public boolean equals( Object obj ) {
	    if ( this == obj )
		    return true;
	    if ( obj == null )
		    return false;
	    if ( getClass() != obj.getClass() )
		    return false;
	    Disciplina other = (Disciplina) obj;
	    if ( disId != other.disId )
		    return false;
	    return true;
    }

	public static long getSerialversionuid() {
		return serialVersionUID;
	}
	

	//	public List< DisciplinaProfessor > getDisciplinaProfessors() {
	//		return this.disciplinaProfessors;
	//	}
	//
	//	public void setDisciplinaProfessors( List< DisciplinaProfessor > disciplinaProfessors ) {
	//		this.disciplinaProfessors = disciplinaProfessors;
	//	}

	//	public DisciplinaProfessor addDisciplinaProfessor( DisciplinaProfessor disciplinaProfessor ) {
	//		getDisciplinaProfessors().add( disciplinaProfessor );
	//		disciplinaProfessor.setDisciplina( this );
	//
	//		return disciplinaProfessor;
	//	}
	//
	//	public DisciplinaProfessor removeDisciplinaProfessor( DisciplinaProfessor disciplinaProfessor ) {
	//		getDisciplinaProfessors().remove( disciplinaProfessor );
	//		disciplinaProfessor.setDisciplina( null );
	//
	//		return disciplinaProfessor;
	//	}
	//
	//	public List< DisciplinaQuestao > getDisciplinaQuestaos() {
	//		return this.disciplinaQuestaos;
	//	}
	//
	//	public void setDisciplinaQuestaos( List< DisciplinaQuestao > disciplinaQuestaos ) {
	//		this.disciplinaQuestaos = disciplinaQuestaos;
	//	}

	//	public DisciplinaQuestao addDisciplinaQuestao( DisciplinaQuestao disciplinaQuestao ) {
	//		getDisciplinaQuestaos().add( disciplinaQuestao );
	//		disciplinaQuestao.setDisciplina( this );
	//
	//		return disciplinaQuestao;
	//	}
	//
	//	public DisciplinaQuestao removeDisciplinaQuestao( DisciplinaQuestao disciplinaQuestao ) {
	//		getDisciplinaQuestaos().remove( disciplinaQuestao );
	//		disciplinaQuestao.setDisciplina( null );
	//
	//		return disciplinaQuestao;
	//	}

	//	public List< UnidadeDeEnsinoDisciplina > getUnidadeDeEnsinoDisciplinas() {
	//		return this.unidadeDeEnsinoDisciplinas;
	//	}
	//
	//	public void setUnidadeDeEnsinoDisciplinas( List< UnidadeDeEnsinoDisciplina > unidadeDeEnsinoDisciplinas ) {
	//		this.unidadeDeEnsinoDisciplinas = unidadeDeEnsinoDisciplinas;
	//	}

	//	public UnidadeDeEnsinoDisciplina addUnidadeDeEnsinoDisciplina( UnidadeDeEnsinoDisciplina unidadeDeEnsinoDisciplina ) {
	//		getUnidadeDeEnsinoDisciplinas().add( unidadeDeEnsinoDisciplina );
	//		unidadeDeEnsinoDisciplina.setDisciplina( this );
	//
	//		return unidadeDeEnsinoDisciplina;
	//	}

	//	public UnidadeDeEnsinoDisciplina removeUnidadeDeEnsinoDisciplina( UnidadeDeEnsinoDisciplina unidadeDeEnsinoDisciplina ) {
	//		getUnidadeDeEnsinoDisciplinas().remove( unidadeDeEnsinoDisciplina );
	//		unidadeDeEnsinoDisciplina.setDisciplina( null );
	//
	//		return unidadeDeEnsinoDisciplina;
	//	}

}